﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BGCOP.CAVTOP.BUSINESSLAYER;
using Telerik.WinControls.UI.Export;

namespace BGCOP.CAVTOP.WINFORMS
{
    public partial class frmReporteMarcacionesEmpleado : Form
    {
        public List<TEmpresa> ListaEmpresas;
        public List<TEmpleado> ListaEmpleados;
 
        public frmReporteMarcacionesEmpleado()
        {
            InitializeComponent();
        }

        private void frmReporteMarcacionesEmpleado_Load(object sender, EventArgs e)
        {
            dtInicio.Value = DateTime.Now;
            dtFin.Value = DateTime.Now;
            Empresas em = new Empresas();
            ListaEmpresas = em.ListarTodas();
            ListaEmpresas.Insert(0, new TEmpresa()
                                        {
                                            idEmpresa =-999,
                                            RazonSocial = "Todas las Empresas"
                                        });
            cmbEmpresa.DataSource = ListaEmpresas;
            cmbEmpresa.DisplayMember = "RazonSocial";
            cmbEmpresa.ValueMember = "idEmpresa";
            Empleados emp = new Empleados();
            ListaEmpleados = emp.ListarTodos();
            ListaEmpleados.Insert(0, new TEmpleado()
                                         {
                                             idEmpleado = -999,
                                             nombre = "Todos los Empleados"
                                         });
            cmdEmpleado.DataSource = ListaEmpleados;
            cmdEmpleado.DisplayMember = "nombre";
            cmdEmpleado.ValueMember = "idEmpleado";
        }

        private void cmbEmpresa_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                if (cmbEmpresa.SelectedIndex < 0)
                {
                    return;
                }
                Empleados emp = new Empleados();
                TEmpresa selem = cmbEmpresa.SelectedItem as TEmpresa;
                switch (Convert.ToInt32(selem.idEmpresa))
                {
                    case -999:
                        //lista todos
                        ListaEmpleados = emp.ListarTodos();
                        break;
                    default:
                        ListaEmpleados = emp.ListarTodos(Convert.ToInt32(cmbEmpresa.SelectedValue));
                        break;
                }

                ListaEmpleados.Insert(0, new TEmpleado()
                {
                    idEmpleado = -999,
                    nombre = "Todos los Empleados"
                });
                cmdEmpleado.DataSource = ListaEmpleados;
                cmdEmpleado.DisplayMember = "nombre";
                cmdEmpleado.ValueMember = "idEmpleado";
            }
            catch (Exception)
            {
                
               
            }
            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Reportes rp = new Reportes();
            TEmpresa selem = cmbEmpresa.SelectedItem as TEmpresa;
            TEmpleado emplesel = cmdEmpleado.SelectedItem as TEmpleado;
            radGridView1.DataSource = rp.consultarReporteEmpleados(dtInicio.Value.Date, 
                                                                   dtFin.Value.Date.AddDays(1), 
                                                                   selem.idEmpresa, emplesel.idEmpleado);
        }

        private void radGridView1_DataBindingComplete(object sender, Telerik.WinControls.UI.GridViewBindingCompleteEventArgs e)
        {
            foreach (var xx in radGridView1.Columns)
            {
                xx.BestFit();
            }
            lblRegistros.Text = radGridView1.Rows.Count.ToString(CultureInfo.InvariantCulture) + " Registros";
        }

        private void button2_Click(object sender, EventArgs e)
        {
            ExportToExcelML exporter = new ExportToExcelML(this.radGridView1);
            exporter.HiddenColumnOption = Telerik.WinControls.UI.Export.HiddenOption.DoNotExport;
            exporter.ExportVisualSettings = true;
            exporter.SheetMaxRows = ExcelMaxRows._1048576;
            exporter.SheetName = "Listado";
            exporter.SummariesExportOption = SummariesOption.DoNotExport;
            string ruta;
            ruta = System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\ExportedDataMarcacionEmpleados.xls";
            try
            {
                exporter.RunExport(ruta);
                radDesktopAlert1.ContentImage = BGCOP.CAVTOP.WINFORMS.Properties.Resources.File_Excel_icon;
                radDesktopAlert1.CaptionText = "Exportar a excel";
                radDesktopAlert1.ContentText = "El archivo se exportado con exito.\r\nRuta: " + ruta;
                radDesktopAlert1.FixedSize = new Size(450, 150);
                radDesktopAlert1.Show();
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.ToString());
            }
        }

       
    }
}
